<!DOCTYPE html>
<html lang="zh-CH" >
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="author" content="" />
	
	
	
	<title>Unity官方文档翻译之 AssetBundle 补丁更新 ｜ zansimple</title>
	
    
    
    <meta name="description" content="正文 AssetBundle 补丁更新 修复 AssetBundle 就像下载一个新的 AssetBundle 并替换现有的 AssetBundle 一样简单。如果 WWW.LoadFromCacheOrDownload 或UnityWebRequest 用于管理应用程序的缓存 assetbundle ，将一个不同的版本参数传递给所选的 API 将会下载新的 assetbundle 。 在修补系统中要解决的更困难的问题是检测要替换的assetbundle。一个修补系统需要两个信息列表：
 当前下载的 assetbundle 的列表，以及它们的版本控制信息 服务器上的 assetbundle 和它们的版本信息的列表 修复者应该下载服务器端 AssetBundle 的列表，并比较 AssetBundle 列表。丢失的 assetbundle ，或其版本化信息已经更改的 assetbundle ，应该重新下载。还可以编写一个定制系统来检测 assetbundle 的变化。大多数编写自己系统的开发人员选择为他们的 AssetBundle 文件列表使用行业标准的数据格式，比如 JSON ，以及用于计算校验和的标准 C#，比如 MD5 。 Unity 以一种确定的方式构建了 assetbundle 。这允许使用自定义下载器的应用程序实现微分补丁。 Unity 没有为差异化更新提供任何内置的机制，无论是 WWW.LoadFromCacheOrDownload ，还是 UnityWebRequest ，在使用内置的缓存系统的时候，都不能实现差异化更新。如果想要实现差异化更新，需要自己编写一个定制下载器。  " />
    

    

	
    
    <link rel="shortcut icon" href="https://lenzan.github.io/images/favicon.ico" />

    <link rel="stylesheet" type="text/css" media="screen" href="https://lenzan.github.io/css/normalize.css" />
    <link rel="stylesheet" type="text/css" media="screen" href="https://cdn.jsdelivr.net/npm/animate.css@4.1.0/animate.min.css" />
    <link rel="stylesheet" type="text/css" media="screen" href="https://lenzan.github.io/css/zozo.css" />
	<link rel="stylesheet" type="text/css" media="screen" href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css" />
    <link rel="stylesheet" type="text/css" media="screen" href="https://lenzan.github.io/css/highlight.css" />

    
    
</head>

<body>
    <div class="main animate__animated animate__fadeInDown">
        <div class="nav_container animated fadeInDown">
    <div class="site_nav" id="site_nav">
        <ul>
            
            <li>
                <a href="/">首页</a>
            </li>
            
            <li>
                <a href="/">unity</a>
            </li>
            
            <li>
                <a href="/">归档</a>
            </li>
            
            <li>
                <a href="/">关于</a>
            </li>
            
        </ul>
    </div>
    <div class="menu_icon">
        <a id="menu_icon"><i class="ri-menu-line"></i></a>
    </div>
</div>
        <div class="header animated fadeInDown">
    <div class="site_title_container">
        <div class="site_title">
            <h1>
                <a href="https://lenzan.github.io/">
                    <span>zansimple</span>
                    <img src="https://lenzan.github.io/images/logo.svg" />
                </a>
            </h1>
        </div>
        <div class="description">
            <p class="sub_title">专注于Unity虚拟现实开发，游戏开发</p>
            <div class="my_socials">
                
                <a href="https://lenzan.github.io/index.xml" type="application/rss+xml" title="rss" target="_blank"><i
                        class="ri-rss-fill"></i></a>
            </div>
        </div>
    </div>
</div>
        <div class="content">
            <div class="post_page">
                <div class="post animate__animated animate__fadeInDown">
                    <div class="post_title post_detail_title">
                        <h2><a href='/posts/assetbundle/patching-with-AssetBundles/'>Unity官方文档翻译之 AssetBundle 补丁更新</a></h2>
                        <span class="date">2018.06.01</span>
                    </div>
                    <div class="post_content markdown"><h1 id="正文">正文</h1>
<h2 id="assetbundle-补丁更新">AssetBundle 补丁更新</h2>
<p>修复 AssetBundle 就像下载一个新的 AssetBundle 并替换现有的 AssetBundle 一样简单。如果 WWW.LoadFromCacheOrDownload 或UnityWebRequest 用于管理应用程序的缓存 assetbundle ，将一个不同的版本参数传递给所选的 API 将会下载新的 assetbundle 。
在修补系统中要解决的更困难的问题是检测要替换的assetbundle。一个修补系统需要两个信息列表：</p>
<ol>
<li>当前下载的 assetbundle 的列表，以及它们的版本控制信息</li>
<li>服务器上的 assetbundle 和它们的版本信息的列表
修复者应该下载服务器端 AssetBundle 的列表，并比较 AssetBundle 列表。丢失的 assetbundle ，或其版本化信息已经更改的 assetbundle ，应该重新下载。还可以编写一个定制系统来检测 assetbundle 的变化。大多数编写自己系统的开发人员选择为他们的 AssetBundle 文件列表使用行业标准的数据格式，比如 JSON ，以及用于计算校验和的标准 C#，比如 MD5 。
Unity 以一种确定的方式构建了 assetbundle 。这允许使用自定义下载器的应用程序实现微分补丁。
Unity 没有为差异化更新提供任何内置的机制，无论是 WWW.LoadFromCacheOrDownload ，还是 UnityWebRequest ，在使用内置的缓存系统的时候，都不能实现差异化更新。如果想要实现差异化更新，需要自己编写一个定制下载器。</li>
</ol>
</div>
                    <div class="post_footer">
                        
                        <div class="meta">
                            <div class="info">
                                <span class="field tags">
                                    <i class="ri-stack-line"></i>
                                    
                                    <a href="https://lenzan.github.io/tags/Unity3D/">Unity3D</a>
                                    
                                    <a href="https://lenzan.github.io/tags/AssetBundle/">AssetBundle</a>
                                    
                                </span>
                            </div>
                        </div>
                        
                    </div>
                </div>
                
                
            </div>
        </div>
    </div>
    <a id="back_to_top" href="#" class="back_to_top"><span>△</span></a>
    <footer class="footer">
    <div class="powered_by">
        <a href="https://varkai.com">Designed by VarKai,</a>
        <a href="http://www.gohugo.io/">Proudly published with Hugo</a>
    </div>

    <div class="footer_slogan">
        <span></span>
    </div>
</footer>
    <script src="https://lenzan.github.io/js/jquery-3.5.1.min.js"></script>
<link href="https://lenzan.github.io/css/fancybox.min.css" rel="stylesheet">
<script src="https://lenzan.github.io/js/fancybox.min.js"></script>
<script src="https://lenzan.github.io/js/zozo.js"></script>






</body>

</html>